﻿CREATE PROCEDURE [dbo].[Hogar_Actividad_Insertar]   
	@ActividadAsXml Xml
AS 
BEGIN

/*****************************************************************************************************************************************/
-- Author: Carlos Mendoza
-- Purpose:   inserta una nueva actividad y sus horarios
/*****************************************************************************************************************************************/ 
BEGIN TRY
    BEGIN TRAN 
	 
	 DECLARE @ActividadId INT
		
		INSERT INTO [dbo].[Actividad]
           ([Nombre]
           ,[TipoActividadId]
           ,[Activa]
           ,[ResponsableId])
		 SELECT ActividadHorarios.Actividad.query('./Nombre').value('.','VARCHAR(50)'),
        ActividadHorarios.Actividad.query('./TipoActividadId').value('.','INT'),
        1,
        ActividadHorarios.Actividad.query('./ResponsableId').value('.','INT')
        FROM @ActividadAsXml.nodes('/ActividadHorarios/Actividad') AS ActividadHorarios(Actividad)
		
		SET @ActividadID = @@IDENTITY
		
        INSERT INTO [dbo].[HorarioActividad]
           ([ActividadId]
           ,[DiaSemanaId]
           ,[HoraComienzo]
           ,[HoraFin])
        SELECT @ActividadId,
        Horarios.HorarioActividad.query('./DiaSemanaId').value('.','INT'),
        Horarios.HorarioActividad.query('./HoraComienzo').value('.','VARCHAR(5)'),
        Horarios.HorarioActividad.query('./HoraFin').value('.','VARCHAR(5)')
        FROM @ActividadAsXml.nodes('/ActividadHorarios/Horarios/HorarioActividad') AS Horarios(HorarioActividad)

    COMMIT TRAN
END TRY
BEGIN CATCH
	SELECT ERROR_NUMBER() AS Number,
		ERROR_MESSAGE() AS Message
	ROLLBACK TRAN
	
END CATCH

END